/*
 * PorteroTactica1.java
 *
 * Created on 6 de abril de 2007, 13:56
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package futbol.tacticas.concursantes2007.tikitaka.tactica;

import futbol.tacticas.*;
import futbol.General;
import java.awt.Point;

/**
 *
 * @author leamsi78
 */
public class PorteroTactica1 extends Estado {
    
    /** Creates a new instance of PorteroTactica1 */
    public PorteroTactica1() {
    }
    
    public void Entrar(Object obj)
    {
    }
    
    public void Ejecutar(Object obj)
    {
        Tactica1 tactica = (Tactica1)obj;
        if (tactica.jugadorMasCercaBalon != tactica.PORTERO)
        {
            int posy = (int)tactica.balon.getPosicionActual().y;
            if (posy < -21) posy = -21;
            else if (posy > 21) posy = 21;
            tactica.comandos.add(new ComandoIrA(tactica.PORTERO, -140, posy));
        }
        else
        {
            //Tenemos que ir hacia el balon y cuando estemos a menos de 10 entonces golpear el balon
            tactica.jugador[tactica.PORTERO].irAlBalon();
//            tactica.comandos.add(new ComandoPase(tactica.PORTERO, tactica.DEFENSA_IZQUIERDO));
            Point portero = tactica.jugador[tactica.PORTERO].getPosicion();
            Point p = tactica.jugador[tactica.DEFENSA_DERECHO].getPosicion();
//            Point p = tactica.jugador[tactica.DEFENSA_IZQUIERDO].getPosicion();
            double angulo = General.getAngulo(portero.x, portero.y, p.x, p.y);
            p.x = portero.x + (int)(Math.cos(angulo) * 100);
            p.y = portero.y + (int)(Math.sin(angulo) * 100);
            tactica.comandos.add(new ComandoGolpearBola(tactica.PORTERO, p.x, p.y));
        }
    }
    
    public void Salir(Object obj)
    {
    }
    
    public boolean Mensaje(Object obj, Mensaje mensaje)
    {
        return true;
    }
    
}
